<?php

namespace app\repository\common;

use app\models\common\ModuleModel;
use app\models\common\ModuleRightsModel;
use app\models\common\ClientsModel;
use app\Request;

class Module
{

    protected $moduleModel;
    protected $clientsModel;

    protected $moduleRightsModel;

    public function __construct()
    {
        $this->moduleModel = new ModuleModel();
        $this->clientsModel = new ClientsModel();
        $this->moduleRightsModel = new ModuleRightsModel();
    }

    /**
     * 获取客户端列表
     * @param array $params
     * @param int $start
     * @param int $size
     * @return array
     */
    public function getClientsList(array $params = [], int $start = 0, int $size = 10)
    {
        return $this->clientsModel->getRecordList($params, $start, $size);
    }

    /**
     * 获取功能模块列表
     * @param $param
     * @param $start
     * @param $size
     * @return array
     */
    public function getModuleRecordList(array $param = [], int $start = 0, int $size = 10)
    {
        return $this->moduleModel->getRecordList($param, $start, $size);
    }

    /**
     * 获取功能模块数量
     * @param $param
     * @return mixed
     */
    public function getModuleRecordCount(array $param = [])
    {
        return $this->moduleModel->getRecordCount($param);
    }

    /**
     * 通过id获取功能模块详情
     * @param $id
     * @return mixed
     */
    public function getModuleInfoById($id)
    {
        return $this->moduleModel->getInfoById($id);
    }

    /**
     * 添加功能模块
     * @return void
     */
    public function createModule(array $param)
    {
        return $this->moduleModel->createRecord($param);
    }

    /**
     * 编辑功能模块
     * @param $id
     * @param array $param
     * @return void
     */
    public function updateModule($id, array $param)
    {
        return $this->moduleModel->updateRecord($id, $param);
    }

    /**
     * 删除功能模块
     * @param $id
     * @return mixed
     */
    public function deleteModule($id)
    {
        return $this->moduleModel->deleteRecord($id);
    }

    /**
     * 获取权限列表
     * @param array $param
     * @param int $start
     * @param int $size
     * @return array
     */
    public function getRightsList(array $param = [], int $start = 0, int $size = 10)
    {
        return $this->moduleRightsModel->getRecordList($param, $start, $size);
    }


    /**
     * 通过id获取权限详情
     * @return void
     */
    public function getRightsInfoById($id, array $where = [])
    {
        return $this->moduleRightsModel->getInfoById($id, $where);
    }

    /**
     * 添加权限
     * @param array $params
     * @return void
     */
    public function createRights(array $params)
    {
        return $this->moduleRightsModel->createRecord($params);
    }

    /**
     * 修改权限
     * @param $id
     * @param array $params
     * @return void
     */
    public function updateRights($id, array $params = [])
    {
        return $this->moduleRightsModel->updateRecord($id, $params);
    }

    /**
     * 删除权限
     * @param $id
     * @return array|bool|null
     */
    public function deleteRights($id, array $where = [])
    {
        return $this->moduleRightsModel->deleteRecord($id, $where);
    }

    /**
     * 切换权限是否菜单
     * @param $id
     * @param $value
     * @return array
     */
    public function switchRightsIsMenu($id, $value)
    {
        return $this->moduleRightsModel->switchIsMenu($id, $value);
    }

    /**
     * 切换权限是否显示
     * @param $id
     * @param $value
     * @return array
     */
    public function switchRightsIsShow($id, $value)
    {
        return $this->moduleRightsModel->switchIsShow($id, $value);
    }


}